package exportSystem.Result;

import gameEngine.agents.teamMateModel.TeamMateModel;

import java.util.ArrayList;

/**
 * Interface for the Adaptive agent Result 
 * @author alon
 *
 */
public interface Result {
	/**
	 * adds values from the agent {@link TeamMateModel}
	 * @param metric {@link ArrayList} of a turn result
	 */
	public void addMetric(ArrayList<Double> metric);
	
	/**
	 * 
	 * @return {@link ArrayList} of {@link ArrayList} with all stored results
	 */
	public ArrayList<ArrayList<Double>> getMetric();
	
	/**
	 * return the MetaDate that describe the result
	 * @return {@link ResultMetaData}
	 */
	public ResultMetaData getMetaData();
	
	/**
	 * sum the metric of 2 results
	 * @param result
	 */
	public void sumMatrix(Result result);
	
	/**
	 * add one more accuracy calculation
	 * @param ac
	 */
	public void addCompAccurecy(double ac);
	/**
	 * add one more accuracy calculation
	 * @param ac
	 */
	public void addEpsAccuracy(double ac);
	/**
	 * 
	 * @return accuracy sum / total games
	 */
	public double getCompAccuracy();
	/**
	 * 
	 * @return accuracy sum / total games
	 */
	public double getEpsAccuracy();
}
